In general, “push” technology refers to a style of network communication in which a given transaction is initiated by the publisher or central server. (By contrast, “pull” technology refers to a style of network communication in which a given transaction is initiated by receiver or client.) Push services are often based on a publish/subscribe model. For example, a client might “subscribe” to various information “channels” provided by a publisher. When new content is available on one of those channels, the server would push that information out to the client.
Some mobile-device platform providers may provide a centralized, general-purpose “Push” notification system. For example, various versions of the iOS mobile operating system, provided by Apple Inc. of Cupertino Calif., enable “Push Notifications” in which an application on the sender's device (e.g., an iPhone, iPod Touch, iPad, and the like) can send a notification to the receiver's device through the Apple Push Notification Service (“APNS”). The notification may (or may not) subsequently appear on the receiver's device. The receiver can typically dismiss the notification or accept the notification, which will launch the application with data stored in the message.
The APNS works only when both sender and receiver have installed the application in question, when both users have run the application, and when the receiver has indicated that it will accept push notifications for a given application by uploading a “Push Token” to the server of the Push Notification Provider. Once all of these conditions have been met, an application on another device can push a notification to the application on the device that generated that Push Token.
Similarly, some versions of the Android mobile operating system (provided by the Open Handset Alliance) support push notifications via Android Cloud to Device Messaging (“C2DM”), which was developed by Google Inc. of Menlo Park, Calif. To enable C2DM, an application on a recipient client device obtains a registration ID and provides the registration ID to a push server. The push server communicates with C2DM servers, which route pushed notifications to the client device. The client device “wakes up” the appropriate application to process the pushed notification. The application can unregister with C2DM when the user no longer wants to receive notifications pushed to the application.